<script lang="ts" setup>
import { computed } from 'vue'
import LoginForm from './LoginForm.vue'
import ForgetPasswordForm from './ForgetPasswordForm.vue'
import RegisterForm from './RegisterForm.vue'
import MobileForm from './MobileForm.vue'
import QrCodeForm from './QrCodeForm.vue'
import { AppDarkModeToggle, AppLocalePicker, AppLogo } from '@/components/Application'
import { useGlobSetting } from '@/hooks/setting'
import { useI18n } from '@/hooks/web/useI18n'
import { useDesign } from '@/hooks/web/useDesign'
import { useLocaleStore } from '@/store/modules/locale'

defineProps({
  sessionTimeout: {
    type: Boolean,
  },
})

const globSetting = useGlobSetting()
const { prefixCls } = useDesign('login')
const { t } = useI18n()
const localeStore = useLocaleStore()
const showLocale = localeStore.getShowPicker
const title = computed(() => globSetting?.title ?? '')
</script>

<template>
  <div :class="prefixCls" class="relative h-full min-h-full w-full overflow-hidden px-4">
    <div :class="prefixCls" class="relative h-full min-h-full w-full overflow-hidden px-4">
      <div class="absolute right-4 top-4 flex items-center">
        <AppDarkModeToggle v-if="!sessionTimeout" class="enter-x mr-2" />
        <AppLocalePicker v-if="!sessionTimeout && showLocale" class="enter-x xl:text-gray-600" :show-text="false" />
      </div>

      <span class="-enter-x xl:hidden">
      <AppLogo :always-show-title="true" />
    </span>

      <div class="relative mx-auto h-full py-2 container sm:px-10">
        <div class="h-full flex">
          <div class="mr-4 hidden min-h-full pl-4 xl:w-6/12 xl:flex xl:flex-col">
            <AppLogo class="-enter-x" />
            <!--            <div class="my-auto">-->
            <!--              <img :alt="title" src="@/assets/svg/login-box-bg.svg" class="-enter-x w-1/2 -mt-16">-->
            <!--              <div class="-enter-x mt-10 font-medium text-white">-->
            <!--                <span class="mt-4 inline-block text-3xl dark:text-gray-500"> {{ t('sys.login.signInTitle') }}</span>-->
            <!--              </div>-->
            <!--              <div class="-enter-x mt-5 font-normal text-white dark:text-gray-500">-->
            <!--                {{ t('sys.login.signInDesc') }}-->
            <!--              </div>-->
            <!--            </div>-->
          </div>
          <div class="h-full w-full flex py-5 xl:my-0 xl:h-auto xl:w-6/12 xl:py-0">
            <!-- eslint-disable max-len -->
            <div :class="`${prefixCls}-form`" class="enter-x relative mx-auto my-auto w-full rounded-md px-5 py-8 shadow-md xl:ml-16 lg:w-2/4 sm:w-3/4 xl:w-auto xl:bg-transparent xl:p-4 sm:px-8 xl:shadow-none">
              <!--   平台登录框           -->
              <LoginForm />
              <ForgetPasswordForm />
              <RegisterForm />
              <MobileForm />
              <QrCodeForm />
            </div>
          </div>
        </div>
      </div>
    </div>
    <span class="-enter-x xl:hidden">
      <AppLogo :always-show-title="true" />
    </span>

    <div class="relative mx-auto h-full py-2 container sm:px-10">
      <div class="h-full flex">
        <div class="mr-4 hidden min-h-full pl-4 xl:w-6/12 xl:flex xl:flex-col">
          <AppLogo class="-enter-x" />
          <div class="my-auto">
            <!--            <img :alt="title" src="@/assets/svg/login-box-bg.svg" class="-enter-x w-1/2 -mt-16">-->
            <!--            <div class="-enter-x mt-10 font-medium text-white">-->
            <!--              <span class="mt-4 inline-block text-3xl"> {{ t('sys.login.signInTitle') }}</span>-->
            <!--            </div>-->
            <!--            <div class="-enter-x mt-5 font-normal text-white dark:text-gray-500">-->
            <!--              {{ t('sys.login.signInDesc') }}-->
            <!--            </div>-->
          </div>
        </div>
        <div class="h-full w-full flex py-5 xl:my-0 xl:h-auto xl:w-6/12 xl:py-0">
          <!-- eslint-disable max-len -->
          <div
            :class="`${prefixCls}-form`"
            class="enter-x relative mx-auto my-auto w-full rounded-md px-5 py-8 shadow-md xl:ml-16 lg:w-2/4 sm:w-3/4 xl:w-auto xl:bg-transparent xl:p-4 sm:px-8 xl:shadow-none"
          >
            <LoginForm />
            <ForgetPasswordForm />
            <RegisterForm />
            <MobileForm />
            <QrCodeForm />
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<style lang="less">
@prefix-cls: ~'@{namespace}-login';
@logo-prefix-cls: ~'@{namespace}-app-logo';
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
@dark-bg: rgba(41, 49, 70, 0.6);

body {
  background-size: cover;
  background-attachment: fixed;
}

html[data-theme='dark'] {
  .@{prefix-cls} {
    padding: 0;
    /* 背景图不重复 */
    background: url('@/assets/images/dark-bg.png') no-repeat ;
    background-size: 100% 100%; /* 拉伸图片，适应容器 */


    &::before {
      background-image: url('@/assets/svg/login-bg-dark.svg');
    }

    .ant-input,
    .ant-input-password {
      background-color: rgba(35, 42, 59, 0.98);
    }

    .ant-btn:not(.ant-btn-link, .ant-btn-primary) {
      border: 1px solid #4a5569;
    }

    &-form {
      background: rgba(23, 23, 23, 0.88) !important;
      border:1px solid #505050;
    }

    .app-iconify {
      color: #fff;
    }
  }

  input.fix-auto-fill,
  .fix-auto-fill input {
    -webkit-text-fill-color: #c9d1d9 !important;
    box-shadow: inherit !important;
  }
}

.@{prefix-cls} {
  padding: 0;
  //background-color: @dark-bg;
  background: url("@/assets/images/login.png") no-repeat;
  background-size: 100% 100%; /* 拉伸图片，适应容器 */

  .@{prefix-cls}-form {
    padding: 1.5rem 2.1rem .8rem 2.1rem;
    background-color: #fff;
  }

  @media (max-width: @screen-xl) {
    background-color: #293146;

    .@{prefix-cls}-form {
      background-color: #fff;
    }
  }

  /*  &::before {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      margin-left: -48%;
      content: '';
      //background-image: url('@/assets/svg/login-bg.svg');
      background-repeat: no-repeat;
      background-position: 100%;
      background-size: auto 100%;

      @media (max-width: @screen-xl) {
        display: none;
      }
    }*/

  .@{logo-prefix-cls} {
    position: absolute;
    top: 12px;
    height: 30px;

    &__title {
      font-size: 16px;
      color: #fff;
    }

    img {
      width: 32px;
    }
  }

  .container {
    .@{logo-prefix-cls} {
      display: flex;
      width: 60%;
      height: 80px;

      &__title {
        font-size: 24px;
        color: #fff;
      }

      img {
        width: 48px;
      }
    }
  }

  &-sign-in-way {
    .anticon {
      font-size: 22px;
      color: #888;
      cursor: pointer;
    }
  }

  input:not([type='checkbox']) {
    min-width: 360px;

    @media (max-width: @screen-xl) {
      min-width: 320px;
    }

    @media (max-width: @screen-lg) {
      min-width: 260px;
    }

    @media (max-width: @screen-md) {
      min-width: 240px;
    }

    @media (max-width: @screen-sm) {
      min-width: 160px;
    }
  }

  .@{countdown-prefix-cls} input {
    min-width: unset;
  }

  .ant-divider-inner-text {
    font-size: 12px;
  }
}
</style>
